<?php
use Workerman\Worker;
use \Workerman\Lib\Timer;
require_once __DIR__ . '/Workerman/Autoloader.php';


$task = new Worker();
// 开启多少个进程运行定时任务，注意业务是否在多进程有并发问题
$task->count = 1;
$task->name = 'onMessage';
$task->onWorkerStart = function($task)
{
	//跨1
    if($task->id === 0){
    	// 每3600秒执行一次
	    $time_interval = 1;
		Timer::add($time_interval, function(){
			$data = array('value1','value2');
			if($data){
				// 连接队列服务，ip地址为队列服务端ip，这里假设是本机部署ip为127.0.0.1
				$client = stream_socket_client("tcp://127.0.0.1:1236", $err_no, $err_msg, 5);
				if(!$client)
				{
				    exit($err_msg);
				}
				wrqueue($data,$client);
				$jsondata = json_encode($data);
				echo "data:$jsondata\n";
			}else{
				echo "error\n";
			}
			
		});	

    }
};

	//队列写入
	function wrqueue($data,$client){
		// 一个抓取任务
		$message = array(
		    'class' => 'inDB',
		    'method' => 'operateData',
		    'args' => array($data),
		);
		// 数据末尾加一个换行，使其符合Text协议。使用json编码
		$message = json_encode($message)."\n";
		// 向队列发送任务，让队列慢慢去执行
		fwrite($client, $message);
		// 队列返回的结果，这个结果是立即返回的
		$res_json = fread($client, 8192);
		$res = json_decode($res_json,true);
		if($res['code'] != 0){
			fwrite($client, $message);
		}
		fclose($client);
	}
// 如果不是在根目录启动，则运行runAll方法
if(!defined('GLOBAL_START'))
{
    Worker::runAll();
}

